package com.jackchen.service;

import java.util.List;
import java.util.Map;

import com.jackchen.vo.UserGroupVO;

public interface UserGroupService extends IBaseService {

	/**
	 * 查询所有的用户组记录
	 * 
	 * @return
	 */
	public List<UserGroupVO> queryAllUserGroup();
	
	/**
	 * 根据登陆用户名分页查询用户组记录，如果是admin用户，则返回所有用户组记录
	 * 
	 * @param userName
	 * @param pageSize
	 * @param startRow
	 * @return
	 */
	public Map queryUserGroupByUserOnPage(String userName, int pageSize, int startRow);
	
	/**
	 * 删除用户组
	 * 
	 * @param ids
	 * @return 如果删除操作执行成功则返回["success"]
	 *		        如果不成功则返回["type",data](type：失败原因；data：提示数据)
	 */
	public Object[] deleteUserGroups(String[] ids);
	
	/**
	 * 根据登陆用户，返回该登陆用户新建用户组时，可以为其赋予的用户组级别范围
	 * 
	 * @param userName
	 * @return
	 */
	public int[] queryUserGroupLevelRange(String userName);
	
	/**
	 * 创建用户组
	 * 
	 * @param name
	 * @param desc
	 * @param level
	 * @return
	 */
	public boolean createNewUserGroup(String name, String desc, int level);

	/**
	 * 根据id返回编辑用户组详细信息
	 * 
	 * @param userGroupId
	 */
	public UserGroupVO queryEditUserGroup(String userGroupId);

	/**
	 * 编辑用户组
	 * 
	 * @param id
	 * @param name
	 * @param desc
	 * @param level
	 * @return
	 */
	public boolean updateUserGroup(String id, String name, String desc, int level);
	
	
}
